Randomized Load Balancing (RLB) across networks is a recently introduced, attractive architecture for handling a high degree of variability in traffic distributions in data networks. Assuming a network of N ingress/egress nodes, RLB works as follows.
Initially, all ingress traffic input to an ingress node i is split into N parts, and each part (i.e., packet or packets) is randomly sent to one of a plurality of other network nodes, called ‘intermediate nodes’ or ‘routing nodes’. Though the traffic is split, no packet header information is used to perform the splitting. Because of this, fully deterministic round-robin scheduling, for example, is as random as a true random traffic splitting (this is referred to as pseudo-random traffic splitting). To complete such splitting a network requires a full logical mesh of circuits between every ingress node and every intermediate node. Each such circuit, i.e., each statically wired connection between two such nodes, is dimensioned to carry DiDjΣiDi worth of traffic, where Di is the ingress/egress capacity of node i and Dj is the ingress/egress capacity of a routing node j.
After receiving a split portion of the original ingress traffic/packets from each ingress node, each of the N routing nodes is operable to identify the packet headers in the traffic and determine the packets' final destination.
The packets in each split traffic portion are then sent to their final destinations (e.g., the ‘egress nodes’) by each of the N nodes using, again, a full logical mesh of circuits, dimensioned to carry DjDkΣjDj worth of traffic, where Dj is the ingress/egress capacity of the intermediate node j and Dk is the ingress/egress capacity of the final destination. Thus, the total capacity of each circuit (for both the traffic splitting step and the traffic routing step) is 2×DjDkΣjDj.
It has been shown that so-called, Selective Randomized Load Balancing (S)RLB improves the performance of RLB by selecting a smaller number of nodes M as routing nodes, where M<N, across which load balancing is performed (see for example, U.S. patent application Ser. No. 11/086,555 entitled “Methods and Devices for Routing Traffic using Randomized Load Balancing”, assigned to the same assignee as the present application and incorporated by reference herein in full as if set forth in full herein). Further, U.S. patent application Ser. No. 11/086,555 sets forth methods for competing an optimum set of M nodes from among N ingress nodes.
There are, however, several drawbacks to RLB and SRLB. One is that (S)RLB may introduce packet missequencing, leading to the need for packet reordering. To overcome this problem, splitting operations may be performed on entire logic flows rather than on packets, i.e., each flow rather than each packet is sent to a different routing node, (see for example, U.S. patent application Ser. No. 10/785,352 entitled “Load Balancing Method and Apparatus for Ethernet Over SONET and Other Types of Networks”, assigned to the same assignee as the present application and incorporated by reference herein in full as if set forth in full herein). This method, however, is primarily effective when a sufficiently large number of sufficiently small flows are present, assuming a finite buffering capability. Even if (S)RLB is performed across individual packets it may happen that an unlucky random splitting constellation leads to buffer overflow at the intermediate node. Another problem associated with (S)RLB is its support for best-effort traffic: (S)RLB is designed to handle all possible traffic matrices equally well. It does not distinguish between different traffic classes. Therefore, class B (best-effort) traffic is treated with the same quality as class A (guaranteed) traffic, which makes networks that utilize (S)RLB expensive to operate when majority of the traffic is best effort type of traffic.